.core-error-accordion {
    --toggle-icon-animation-duration: 300ms;
    --toggle-icon-animation-function: ease-in;
    --background-color: var(--gray-300);
    --toggle-icon-size: 16px;

    --text-color-secondary: var(--gray-800);

    --state-color-hover: rgb(40 40 40, 4%); // --gray-900 4%
    --state-color-pressed: rgb(40 40 40, 12%); // --gray-900 12%

    background: var(--background-color);
    border-radius: var(--mdl-shape-borderRadius-xs);

    .core-error-accordion--code {
        margin: 0;
        text-align: start;
        color: var(--text-color);
        font: var(--mdl-typography-subtitle-font-md);
        padding-top: var(--mdl-spacing-2);
        padding-bottom: var(--mdl-spacing-2);
        padding-inline-start: var(--mdl-spacing-3);
        padding-inline-end: var(--mdl-spacing-3);
    }

    .core-error-accordion--details {
        opacity: 0;
        display: flex;
        overflow: hidden;
        flex-direction: column;
        justify-content: center;
        transition-property: opacity, height;
        transition-duration: var(--toggle-icon-animation-duration);
        transition-timing-function: var(--toggle-icon-animation-function);

        p {
            margin: 0;
            padding-top: var(--mdl-spacing-2);
            padding-bottom: var(--mdl-spacing-2);
            padding-inline-start: var(--mdl-spacing-3);
            padding-inline-end: var(--mdl-spacing-3);
            text-align: start;
            font: var(--mdl-typography-body-font-md);
            color: var(--text-color-secondary);
        }

    }

    .core-error-accordion--toggle {
        display: flex;
        width: 100%;
        align-items: center;
        background: transparent;
        justify-content: space-between;
        color: var(--text-color-secondary);
        font: var(--mdl-typography-label-font-lg);
        padding-top: var(--mdl-spacing-2);
        padding-bottom: var(--mdl-spacing-2);
        padding-inline-start: var(--mdl-spacing-3);
        padding-inline-end: var(--mdl-spacing-3);

        .core-error-accordion--toggle-text {
            display: flex;
            flex-direction: column;
        }

        .core-error-accordion--show-details,
        .core-error-accordion--hide-details {
            text-align: start;
            transition: opacity var(--toggle-icon-animation-duration) var(--toggle-icon-animation-function);
        }

        ion-icon {
            width: var(--toggle-icon-size);
            margin-inline-start: var(--mdl-spacing-4);
            transition: transform var(--toggle-icon-animation-duration) var(--toggle-icon-animation-function);
            transform: rotate(0);
        }

        @include core-focus-background();

        &:hover {
            background: var(--state-color-hover);
        }

        &:active {
            background: var(--state-color-pressed);
        }

    }

    &.hydrated {
        width: var(--width);

        .core-error-accordion--details {
            height: 0;
        }

        .core-error-accordion--toggle {

            .core-error-accordion--toggle-text {
                flex-grow: 1;
                position: relative;
            }

            .core-error-accordion--hide-details {
                position: absolute;
                opacity: 0;
                top: 0;
                bottom: 0;
                left: 0;
                right: 0;
            }

        }

    }

    &.expanded {

        .core-error-accordion--details {
            opacity: 1;
            height: var(--description-height);
        }

        .core-error-accordion--toggle {

            .core-error-accordion--hide-details {
                opacity: 1;
            }

            .core-error-accordion--show-details {
                opacity: 0;
            }

            ion-icon {
                transform: rotate(180deg);
            }

        }

    }

}

:root.dark .core-error-accordion {
    --background-color: var(--gray-700);
}
